/*
 * Copyright (C) 2010 TopCoder Inc., All Rights Reserved.
 */
package com.hercules.android.receiver.entities;

import java.util.Map;

/**
 * <p>
 * A POJO which contains the connecting data.
 * </p>
 * 
 * @author TCSASSEMBER
 * @version 1.0
 */
public class ApplicationConnectionData {
    /**
     * A hash of key / value pairs containing the device capabilities.
     */
    private DeviceCapabilities deviceCaps;

    /**
     * A string that specifies the name of the XRE application that the receiver wishes to load.
     */
    private String applicationName;

    /**
     * A string of the form X.Y.Z that indicates the minimum version the application that the client can run.
     */
    private String minimumVersion;

    /**
     * An optional string that allows a host to authenticate a receiver.
     */
    private String authenticationToken;

    /**
     * Application-defined set of parameters to pass to the application's initialization routine.
     */
    private Map<String, String> appParams;

    /**
     * The host of XRE server.
     */
    private String host;

    /**
     * The port of XRE server.
     */
    private int port;

    /**
     * Gets the deviceCaps.
     * 
     * @return A hash of key / value pairs containing the device capabilities
     */
    public DeviceCapabilities getDeviceCaps() {
        return deviceCaps;
    }

    /**
     * Sets the deveiceCaps.
     * 
     * @param deviceCaps
     *            A hash of key / value pairs containing the device capabilities
     */
    public void setDeviceCaps(DeviceCapabilities deviceCaps) {
        this.deviceCaps = deviceCaps;
    }

    /**
     * Gets the application name.
     * 
     * @return the application name
     */
    public String getApplicationName() {
        return applicationName;
    }

    /**
     * Sets the application name.
     * 
     * @param applicationName
     *            the application name
     */
    public void setApplicationName(String applicationName) {
        this.applicationName = applicationName;
    }

    /**
     * Gets the minimum version.
     * 
     * @return the minimum version
     */
    public String getMinimumVersion() {
        return minimumVersion;
    }

    /**
     * Sets the minimum version.
     * 
     * @param minimumVersion
     *            the minimum version
     */
    public void setMinimumVersion(String minimumVersion) {
        this.minimumVersion = minimumVersion;
    }

    /**
     * Gets the authentication token.
     * 
     * @return the authentication token
     */
    public String getAuthenticationToken() {
        return authenticationToken;
    }

    /**
     * Sets the authentication token.
     * 
     * @param authenticationToken
     *            the authentication token
     */
    public void setAuthenticationToken(String authenticationToken) {
        this.authenticationToken = authenticationToken;
    }

    /**
     * Gets the application parameters.
     * 
     * @return the application parameters
     */
    public Map<String, String> getAppParams() {
        return appParams;
    }

    /**
     * Sets the application parameters.
     * 
     * @param appParams
     *            the application parameters
     */
    public void setAppParams(Map<String, String> appParams) {
        this.appParams = appParams;
    }

    /**
     * Gets the host of XRE server.
     * 
     * @return the host
     */
    public String getHost() {
        return host;
    }

    /**
     * Sets the host of XRE server.
     * 
     * @param host
     *            the host to set
     */
    public void setHost(String host) {
        this.host = host;
    }

    /**
     * Gets the port of XRE server.
     * 
     * @return the port
     */
    public int getPort() {
        return port;
    }

    /**
     * Sets the port of XRE server.
     * 
     * @param port
     *            the port to set
     */
    public void setPort(int port) {
        this.port = port;
    }
}
